package org.aswing.tree;

extern class DefaultMutableTreeNode implements MutableTreeNode {
	function new(p0 : Dynamic, ?p1 : Bool) : Void;
	function append(p0 : MutableTreeNode) : Void;
	function breadthFirstEnumeration() : Array<Dynamic>;
	function children() : Array<Dynamic>;
	function depthFirstEnumeration() : Array<Dynamic>;
	function getAllowsChildren() : Bool;
	function getChildAfter(p0 : TreeNode) : TreeNode;
	function getChildAt(p0 : Int) : TreeNode;
	function getChildBefore(p0 : TreeNode) : TreeNode;
	function getChildCount() : Int;
	function getDepth() : Int;
	function getFirstChild() : TreeNode;
	function getFirstLeaf() : DefaultMutableTreeNode;
	function getIndex(p0 : TreeNode) : Int;
	function getLastChild() : TreeNode;
	function getLastLeaf() : DefaultMutableTreeNode;
	function getLeafCount() : Int;
	function getLevel() : Int;
	function getNextLeaf() : DefaultMutableTreeNode;
	function getNextNode() : DefaultMutableTreeNode;
	function getNextSibling() : DefaultMutableTreeNode;
	function getParent() : TreeNode;
	function getPath() : Array<Dynamic>;
	function getPreviousLeaf() : DefaultMutableTreeNode;
	function getPreviousNode() : DefaultMutableTreeNode;
	function getPreviousSibling() : DefaultMutableTreeNode;
	function getRoot() : TreeNode;
	function getSharedAncestor(p0 : DefaultMutableTreeNode) : TreeNode;
	function getSiblingCount() : Int;
	function getUserObject() : Dynamic;
	function getUserObjectPath() : Array<Dynamic>;
	function insert(p0 : MutableTreeNode, p1 : Int) : Void;
	function isLeaf() : Bool;
	function isNodeAncestor(p0 : TreeNode) : Bool;
	function isNodeChild(p0 : TreeNode) : Bool;
	function isNodeDescendant(p0 : DefaultMutableTreeNode) : Bool;
	function isNodeRelated(p0 : DefaultMutableTreeNode) : Bool;
	function isNodeSibling(p0 : TreeNode) : Bool;
	function isRoot() : Bool;
	function pathFromAncestorEnumeration(p0 : TreeNode) : Array<Dynamic>;
	function postorderEnumeration() : Array<Dynamic>;
	function preorderEnumeration() : Array<Dynamic>;
	function remove(p0 : MutableTreeNode) : Void;
	function removeAllChildren() : Void;
	function removeAt(p0 : Int) : Void;
	function removeFromParent() : Void;
	function setAllowsChildren(p0 : Bool) : Void;
	function setParent(p0 : MutableTreeNode) : Void;
	function setUserObject(p0 : Dynamic) : Void;
	function toString() : String;
	private var parent : MutableTreeNode;
}
